home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / boostrs.arc / SAVES.ASM < prev    next >
Assembly Source File  |  1985-10-14  |  945b  |  58 lines

  1. ;*************************************************
  2. ;
  3. ;       Procedure SaveScreen (Var PAGE : HeapBuf);
  4. ;
  5. ;       Saves contents of screen
  6. ;       at heap location PAGE
  7. ;
  8. ;*************************************************
  9. SaveS   proc    near
  10.         push    bp
  11.     mov    bp,sp
  12.     push    ds
  13. ;
  14. ;*** Determine Video address
  15. ;
  16.     mov    bx,449h
  17.     xor    ax,ax
  18.     mov    ds,ax
  19.     mov    al,[bx]
  20.     cmp    al,7
  21.     jne    graphx
  22.     mov    dx,0B000h
  23.     jmp    c001
  24. graphx:
  25.     mov    dx,0B800h
  26. c001:   mov     ds,dx
  27. ;
  28. ;*** Copy video memory to heap
  29. ;
  30.     mov    di,[bp+4]
  31.     mov    es,[bp+6]
  32.     xor    si,si
  33.     cld
  34.     cmp    dx,0B800h
  35.     je    cga
  36.         mov     cx,2000
  37. rep    movsw
  38.     jmp    done
  39. ;
  40. ;***    Modified move for color monitor
  41. ;
  42. CGA:    mov    bx,10
  43.     mov    dx,03DAh
  44. DO10:    mov    cx,200
  45. VR2:    in    al,dx        ; we must do this
  46.     and    al,1000b    ; so we won't see
  47.     jz    vr2        ; snow.
  48. rep    movsw
  49.     dec    bx
  50.     jnz    do10
  51. ;
  52. DONE:   pop     ds
  53.         mov     sp,bp
  54.         pop     bp
  55.     ret    4
  56. SaveS   endp
  57. ;
  58.